The present invention relates specifically, although not exclusively, to data backup and recovery in data processing systems and, in particular, to magnetic tape based data backup and recovery.
For convenience of description herein, the term xe2x80x98computer systemxe2x80x99 (or computing apparatus) means an Intel(trademark) microprocessor (or equivalent) based computer system, for example a Pentium(trademark) system, typically operating under an MS-DOS, Windows(trademark) NT or 95/98 operating system environment. Commonly, such a computer system is known as a PC, although the description relates equally to servers, notebooks or laptop computers. It is emphasised, however, that the concepts disclosed herein may be equally applicable to other known, or to be developed, types of computer system. As such, the invention is not intended to be limited to only PC-type systems.
It is well-known to back up data stored on primary storage, such as a hard disk, of a computer system in order to protect against a disaster that might otherwise irrecoverably destroy all or part of the data. Disasters may for example be fire, flood, computer virus or simply accidental deletion of data. One of the main reasons for using magnetic tape as the backup storage medium is that it provides a stable, reliable and relatively cheap option for storing large volumes of backed up data.
Backup application software which executes on the computer system typically provides the functions for enabling such computer system data to be both backed up to, and restored from, tape media, which is written to and read from by a tape drive. Well-known backup application software includes xe2x80x98Replica(trademark)xe2x80x99 from Stac, xe2x80x98ArcServe(trademark)xe2x80x99 from Computer Associates, xe2x80x98BackupExec(trademark)xe2x80x99 from Veritas and xe2x80x98Omniback(trademark)xe2x80x99 from HP. Well-known tape drives include DDS(trademark) and LTO(trademark) compliant tape drives, both available from HP.
Generally, backup application software comprises one or more computer programs for managing data backup and restore operations on a computer system. Typically, the software provides a user interface, which gives the user the opportunity to select which data, or files, the user wishes to back up. The user may select for backup, for example, all files that have been generated or amended since the last backup, all files in a specific directory (or directories), or simply all files (i.e. the whole hard disk system). In addition, backup application software typically permits the user to schedule backup operations to occur when the computer system is not being used, for example at midnight each night. Then, at midnight each night, the backup application software identifies all the files that need to be backed up and stores the files to tape media in the form of a backup data set. In particular, the backup application software will typically format the backup data set into individual records on tape and precede the data set with some form of proprietary information, for example, identifying the backup application software used, the date of the backup, the time of the backup, etc.
In the event of a disaster, such as hard disk failure or even system destruction, typically, a priority is to rebuild a working system as soon as possible. This requires the computer hardware to be restored to the same state as it was before the disaster, which can take hours or even days, even before the file system can be restored. Generally, a significant amount of human intervention is required to complete this process.
In order to reduce the time and human intervention overhead of restoring a computer system after a disaster, some backup application software provides a so-called disaster recovery (DR) solution, which enables a computer system to be restored in an expedited manner to a state which existed before a disaster occurred. Such a scheme typically involves at least installing and configuring a minimal operating system, tape drivers and the backup application software (or the requisite parts thereof) itself.
Known DR solutions typically require a user to generate a set of DR floppy disks. The DR floppy disks may be used to boot the computer system, when it is not possible to boot from the hard disk drive, and execute application software for recovering a backed-up copy of the file system from tape media. The DR floppy disks typically load and execute a minimal version of the operating system along with components of application software comprising DR functionality, thus providing sufficient functionality, for example, for the computer to build new disk partitions, access a tape drive and restore the data from tape media.
The DR operating system is required to reflect the exact hardware configuration of the computer system on which it is to be installed, otherwise it would not be possible to communicate with storage devices such as tape drives.
Typically, therefore, DR floppy disks need to be regenerated by a user whenever the system hardware configuration changes, and particularly when a SCSI (Small Computer Systems Interface) configuration changes. For example, if a new SCSI Host Bus Adaptor (HBA) is added to a server, with a respective new device driver, this device driver needs to be added to the DR floppy disks so that the new SCSI HBA is recognised when rebuilding the computer system.
Generally, therefore, having xe2x80x98currentxe2x80x99 DR floppy disks available relies on a user generating them, keeping them up to date, and being able to find them if a disaster occurs. This is an overhead, which sometimes leads to DR floppy disks not being generated at all, disks being allowed to get out of date, or disks being misplaced over time.
A reason why DR floppy disks are used is that a floppy disk-drive is one of the standard xe2x80x98initial program load devicesxe2x80x99 (IPLD), which practically every PC is configured to xe2x80x98bootxe2x80x99 from. Herein, xe2x80x98standardxe2x80x99, as applied to an IPLD, implies that the PC is physically programmed to recognise the device for the purposes of booting. Currently, other standard IPLDs, sometimes known as BAIDS (BIOS Aware Initial Program Load Devices), include the first hard disk drive in a PC and, more recently, the first CD-ROM drive in a PC. Generally, however, an IPLD can be virtually any device that has the ability to load and execute a PC operating system.
As already mentioned, it is now possible to boot from a CD-ROM drive, as long as the CD-ROM complies with the ISO 9660 CD-ROM standard, as extended by the xe2x80x98El Toritoxe2x80x99 Bootable CD-ROM Format Specification, Version 1.0, Jan. 25, 1995, created jointly by IBM Corporation and Phoenix Technologies Ltd. Booting from CD-ROM in a similar manner is also considered in detail in U.S. Pat. No. 5,727,213. As described, to boot from CD-ROM, a PC""s BIOS (basic input/output system) needs to specifically support reading boot record data from a CD-ROM, typically, as well as from a floppy disk or hard disk. U.S. Pat. No. 5,727,213 also proposes that tape media may also serve as a boot source, subject to the PC BIOS being modified to detect and read boot record data from a tape media. To date, however, PC BIOS standards do not support booting from tape media.
In a system which is bootable from a CD-ROM, U.S. Pat. No. 5,727,213 specifies that, to read boot record data from a CD-ROM, read commands directed to the floppy disk drive need to re-directed to the CD-ROM drive during a read data part of the boot process. In addition, a modified SCSI driver of the PC needs to convert the 512 byte sectors conventionally used by hard disk and floppy disk into 2 Kbytes sectors conventionally used by a CD-ROM drive.
In view of the possibility of booting from CD-ROM, it would obviously also be possible to generate one or more DR CD-ROMs to replace the DR floppy disks. However, there would be little advantage in adopting this approach, and a significant cost increase. In particular, it would still be onerous for the user to have to generate, maintain and keep safe the DR CD-ROMs.
It is one object of the present invention to provide a more convenient DR solution.
According to a first aspect, the present invention provides a method of executing application software in a system comprising computing apparatus and tape drive apparatus, the computing apparatus being bootable from a kind of initial program load device that is not a tape drive apparatus, the method comprising the steps of:
generating bootable tape media, by storing to the tape media both application software and bootable data corresponding to that which a said kind of initial program load device would provide to the computing apparatus during booting of the latter from that device;
initiating booting of the computing apparatus, thereby causing the computing apparatus to attempt to locate a said kind of initial program load device;
controlling the tape drive apparatus to emulate a said kind of initial program load device for interactions with the computing apparatus whilst the latter is booting, whereby the tape drive apparatus identifies itself to the computing apparatus as an initial program load device of the aforesaid kind; and
continuing with the computing apparatus recognising the tape drive apparatus as a said kind of initial program load device, booting from the bootable data and executing the application software.
According to a second aspect, the present invention provides tape drive apparatus, comprising:
a mechanism for controlling the position and motion of loaded tape media;
a read/write circuit for transferring data between the loaded tape media and the tape drive apparatus; and
a controller for controlling the operation of the tape drive apparatus to identify loaded tape media as containing bootable data, receive from the computing apparatus and processes signals which are intended for a kind of initial program load device that is not a tape drive apparatus and generate response signals which the computing apparatus would expect from the said kind of initial program load device.
The foregoing method and apparatus permits a computer system, which may not support booting from tape drive apparatus, to boot from the latter and execute application software, for example DR application software.
According to a third aspect, the present invention provides a method of performing a data recovery operation in a system comprising computing apparatus and tape drive apparatus, the computing apparatus being bootable from a kind of initial program load device that is not a tape drive apparatus, the method comprising the steps of:
generating a recovery tape media, by storing to the tape media both a backup data set and bootable data corresponding to that which a said kind of initial program load device would provide to the computing apparatus during booting of the latter from that device;
initiating booting of the computing apparatus, thereby causing the computing apparatus to attempt to locate a said kind of initial program load device;
controlling the tape drive apparatus to emulate a said kind of initial program load device for interactions with the computing apparatus whilst the latter is booting, whereby the tape drive apparatus identifies itself to the computing apparatus as an initial program load device of the aforesaid kind; and
continuing with the computing apparatus recognising the tape drive apparatus as a said kind of initial program load device, booting from the bootable data, causing the tape drive apparatus to operate as a tape drive apparatus and recovering the backup data set therefrom.
As such, the invention obviates DR floppy disks entirely by storing all the data required for DR onto a single piece of tape media and providing a tape drive which acts like an initial program load device even though it is may not be recognised as one. As a result, minimal human intervention is required to enact DR.
The computing apparatus may be arranged to generate bootable data which complies with the ISO 9660 format for CD-ROM apparatus and the El Torito Bootable CD-ROM Format Specification. Other appropriate formats may be available in future.
The bootable data comprises data and/or files which, when executed, allow the computing apparatus to access a tape drive apparatus and restore therefrom the backed-up data set from the recovery tape media loaded in the tape drive apparatus.
Preferably, the bootable data is written to the recovery tape media starting a pre-determined offset from the beginning of the tape media. As such, appropriately configured tape drive apparatus can read the tape media and locate the bootable data. Preferably, the tape drive apparatus locates the start of the bootable data on the tape media by starting from the logical beginning of the tape media and reading forwards by the pre-determined number of blocks.
In a preferred embodiment, the bootable data is written to recovery tape media starting in the 21st block from the logical beginning of the recovery tape media.
The tape drive apparatus may be controlled to emulate the initial program load device by user operation of initialisation means associated with the tape drive apparatus.
In a preferred embodiment, the initialisation means comprises operating an eject button of the tape drive apparatus while the tape drive apparatus is being powered on.
In addition, preferably, the tape drive apparatus may be arranged to switch to operation as a tape drive apparatus in response to receipt of a specific signal from the computing apparatus.
Alternatively, the tape drive apparatus may be arranged to switch to operation as a tape drive apparatus in response to receipt of a specific signal from the computing apparatus in combination with an amount of data exceeding a predetermined threshold having been read by the computing apparatus from the tape drive apparatus.
Preferably, in response to a status request signal from the computing apparatus, which is attempting to locate a said kind of initial program load device, the tape drive apparatus returns a signal indicating that it is in the process of loading media, even if media is not present, thereby to cause the computing apparatus to wait for an extended period of time before attempting to communicate with an alternative initial program load device.
In order to improve apparent performance of the tape drive apparatus, the tape drive apparatus is arranged to read from the recovery tape media and cache into volatile memory means of the tape drive apparatus at least some of the bootable data.
In particular, said cached bootable data includes directory data representative of the arrangement of the files comprised in the bootable data. As such, the tape drive apparatus needs only to access the tape media once in response to multiple accesses of said directory data by the computing apparatus.
In addition, or alternatively, said cached bootable data may include at least some files in the bootable data that need to be accessed more than once during the recovery operation. As such, the tape drive apparatus needs only to access the tape media once to read said files in response to multiple reads of said files by the computing apparatus.
The computing apparatus may generate bootable data comprising a plurality of data files by ordering the files in substantially the order in which they are subsequently required to be read by the computing apparatus from the recovery tape media for the purposes of a recovery operation.
In accordance with a fourth aspect, the present invention provides tape drive apparatus, comprising a mechanism for controlling the position and motion of loaded tape media;
a read/write circuit for transferring data between the loaded tape media and the tape drive apparatus; and
a controller for controlling the operation of the tape drive apparatus, there being two modes of operation of the tape drive apparatus, characterised in that the controller is arranged to selectively control the tape drive apparatus to operate in either one of the two modes of operation, in which:
a) in a first mode, the tape drive apparatus identifies loaded tape media as containing bootable data, receives from the computing apparatus and processes signals which are intended for a kind of initial program load device that is not a tape drive apparatus and generates response signals which the computing apparatus would expect from the said kind of initial program load device; and
b) in a second mode, the tape drive apparatus operates in accordance with tape drive apparatus operation.
When in the first mode, the controller may be arranged to generate, in reply to a device type inquiry signal from the computing apparatus, a response identifying the tape drive apparatus as the said kind of initial program load device.
Preferably, when in the first mode, the controller is arranged to identify the loaded tape media as containing bootable data by reading from tape media data starting a predetermined offset from the beginning of the recovery tape media.
In a preferred embodiment, the predetermined offset is the 21st block from the logical beginning of the recovery tape media.
In a preferred embodiment, the apparatus further comprises random access memory means, wherein the controller is arranged to read at least some of the bootable data into the random access memory, such that for subsequent accesses of said data by the computing apparatus the controller accesses the random access memory rather than the tape media.
Preferably, the apparatus further comprises user selection means responsive to user operation to cause the tape drive apparatus to operate in the first mode.
In a preferred embodiment, the user selection means comprises an eject button of the tape drive apparatus, and the controller is arranged to detect user operation of the eject button during a power on, or reset, operation of the tape drive apparatus.
In addition, the controller may be responsive to receipt of a particular signal from the computing apparatus to switch the operation of the tape drive apparatus from the first mode to the second mode.
Generally, the initial program load device is a CD-ROM drive.
Other embodiments and aspects of the invention will become apparent from the following description, claims and drawings.